/*
 * ProdutoDao.java
 * 
 * Created on 05/10/2007, 08:03:15
 * 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tcc.dao.produto;

import java.io.Serializable;
import java.util.List;
import tcc.dao.AbstractDao;
import tcc.dao.Criteria;
import tcc.domain.produto.Produto;
import tcc.exception.business.TccBusinessException;
import tcc.exception.system.TccDAOException;

public class ProdutoDao extends AbstractDao{
     /** Creates a new instance of ComponenteDao */
    public ProdutoDao() {
    }
    
    
    public List<Produto> findProdutos(Criteria c){
        
        return super.find(Produto.class,c);
    }
    
    public List<Produto> findAll(){
        return this.findProdutos(null);
    }

    
    public Produto findById( Serializable id) {
        return super.findById(Produto.class, id);
    }
    
    public void save(Produto c) throws TccDAOException, TccBusinessException {
        try {
            super.save(c);
        }catch(RuntimeException ex){
            throw new TccBusinessException(ex);
        }catch (Exception ex){
            throw new TccDAOException(ex);
        }
    }
    
    public void delete(Produto c) throws TccDAOException, TccBusinessException {
        try {
            c = findById(c.getId());
            super.delete(c);
        }catch(RuntimeException ex){
            throw new TccBusinessException(ex);
        }catch (Exception ex){
            throw new TccDAOException(ex);
        }
    }
    
}

